大端序 小端序
作者:matrix 被围观: 5 次 发布时间:2026-03-31 分类:零零星星 | 无评论 »

保存多字节流数据的时候,存放方式有两种顺序:大端序、小端序
只有读取和写入顺序一致才能还原写入的数据。所以读取二进制文件的时候需要考虑字节序问题
字符串不需要考虑字节序:字符串、UTF-8文本、简单变量(非结构体)时,通常不涉及手动字节序处理。
高位、低位字节
# 16位(2字节) 的十六进制数
0x1234
0x12:==高位字节==(高字节)
0x34:==低位字节==(低字节)
类似 千分位,百分位。。。
左边的是高位,靠右边的是低位
什么是高地址,低地址
计算机内存是一格一格的地址空间:
内存地址(byte级别):
0x0000 → 0x0001 → 0x0002 → ...
地址数字小的叫「低地址」,大的叫「高地址」
例如:
内存起始(低地址) → 0x0000
内存末尾(高地址) → 0xFFFF
大端序存储
从高位到低位存储(大端序), 利于人类可读
写入时也是左到右 从高位字节到低位字节的顺序,所以是大端序
数值: 0x1234
字节拆分: 高位 0x12 低位 0x34
内存布局:
地址 内容
0x0000 0x12 ← 放入高位字节
0x0001 0x34 ← 放入低位字节
小端序存储
从低位到高位存储(小端序),利于机器处理,处理更高效自然
写入时从左到右是从低位字节到高位字节的顺序,所以是小端序
数值: 0x1234
字节拆分: 高位 0x12 低位 0x34
内存布局:
地址 内容
0x0000 0x34 ← 放入低位字节
0x0001 0x12 ← 放入高位字节
对比
| 对比项 | 小端序(Little Endian) | 大端序(Big Endian) |
|---|---|---|
| 存储顺序 | 低位在低地址 | 高位在低地址 |
| 可读性 | 反人类直觉 | 和人类阅读习惯一致 |
| 常见平台 | Intel x86, x86_64 | 某些网络协议、老设备等 |